﻿// 摇滚音乐节 FESTIVAL.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <cstring>


using namespace std;
/*
FESTIVAL
https://algospot.com/judge/problem/read/FESTIVAL
问题：
我们打算租用一个大型演出场地举办摇滚音乐节。这个音乐节将持续多天，每天会有一支乐队在场地上演出。虽然我们尚未决定要邀请多少支乐队，
但已经确定的L支乐队是音乐节的明星表演者。因此，音乐节至少会进行L天以上。

我们租用的场地每天的租金不同。因此，我们希望合理安排演出日程，以减少租赁费用。假设我们已知接下来N天的场地租赁费用。
在连续L天中，我们想要最小化每天租用场地的平均费用，应该如何租用场地？

例如，假设接下来6天的租用费用分别为{3, 1, 2, 3, 1, 2}。假设我们已经邀请了三支乐队，那么我们可以选择连续4天举行演出，以获得更低的平均费用。
在这种情况下，我们可以从第2天到第4天租用场地，这样每天的平均费用为(1+2+3)/3 = 2。
而如果我们选择从第2天到第5天租用场地，那么平均费用将为(1+2+3+1)/4 = 7/4。

输入：
输入的第一行是测试用例的数量C（C≤100）。每个测试用例的第一行包含两个整数N（1≤N≤1000）和L（1≤L≤1000，L≤N），
分别表示可以租用场地的天数和已经邀请的乐队数量。接下来一行是N个数字，表示每天的场地租金。所有费用均为不超过100的自然数。

输出：
对于每个测试用例，输出最小的平均租赁费用。答案将被视为正确的条件是结果的绝对/相对误差不超过10-7。

示例输入：
2
6 3
1 2 3 1 2 3
6 2
1 2 3 1 2 3

示例输出：
1.75000000000
1.50000000000

注意：
*/

const int N = 1010;
int pre[N];
int t, n, l;


void solve() {
	cin >> n >> l;
	memset(pre, 0, sizeof pre);

	int t;
	for (int i = 1; i <= n; i++) {
		cin >> t;
		pre[i] = t + pre[i - 1];
	}
	double ans = 1e9;
	for (int len = l; len <= n; len++) {
		for (int i = len; i <= n; i++) {
			double curr = 1.0 * (pre[i] - pre[i - len]) / len;
			if (ans - curr >= 1e-9) {
				ans = curr;
			}
		}
	}

	printf("%.8f\n", ans);

	return;
}



int main()
{
	cin >> t;
	while (t--) {
		solve();
	}

	return 0;
}

 